{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# General import \n",
    "\n",
    "import numpy as np\n",
    "import scipy.sparse as sparse\n",
    "import time\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# pyMPC import\n",
    "\n",
    "from pyMPC.mpc import MPCController"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## System dynamics ##\n",
    "\n",
    "Point mass $M=2\\; \\text{Kg}$ subject to an input force $F_{ext}$ and viscous friction with coefficient $b = 0.3\\;N \\cdot \\frac{s}{m}$.\n",
    "\n",
    "\\begin{equation}\n",
    "\\begin{split}\n",
    "\\dot p &= v\\\\\n",
    "\\dot v &= -\\frac{b}{M}v + \\frac{1}{M}F_{ext}\n",
    "\\end{split}\n",
    "\\end{equation}\n",
    "\n",
    "System equations discretized with sampling time $T_s = 0.2~\\text{s}$.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# MPC system matrices #\n",
    "\n",
    "Ts = 0.2 # sampling time (s)\n",
    "M = 2    # mass (Kg)\n",
    "b = 0.3  # friction coefficient (N*s/m)\n",
    "\n",
    "# MPC model dynamics: x_k+1 = Ad*x_k + Bb*u_k\n",
    "Ad = sparse.csc_matrix([\n",
    "    [1.0, Ts],\n",
    "    [0,  1.0 -b/M*Ts]\n",
    "])\n",
    "Bd = sparse.csc_matrix([\n",
    "  [0.0],\n",
    "  [Ts/M]])\n",
    "\n",
    "# Continuous-time system matrices (just for reference, not used)\n",
    "Ac = np.array([\n",
    "    [0.0, 1.0],\n",
    "    [0, -b/M]]\n",
    ")\n",
    "Bc = np.array([\n",
    "    [0.0],\n",
    "    [1/M]\n",
    "])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# MPC reference input and states (set-points)\n",
    "\n",
    "pref = 7.0\n",
    "vref = 0.0\n",
    "xref = np.array([pref, vref]) # reference state\n",
    "uref = np.array([0.0])    # reference input\n",
    "uminus1 = np.array([0.0])     # input at time step negative one - used to penalize the first delta u at time instant 0. Could be the same as uref."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "# MPC constraints\n",
    "\n",
    "xmin = np.array([-100.0, -100.0])\n",
    "xmax = np.array([100.0,   100.0])\n",
    "\n",
    "umin = np.array([-1.2])\n",
    "umax = np.array([1.2])\n",
    "\n",
    "# Constraints input variation with respect to previous sample\n",
    "Dumin = np.array([-2e-1]) \n",
    "Dumax = np.array([2e-1])\n",
    "\n",
    "# MPC objective function weights\n",
    "Qx = sparse.diags([0.5, 0.1])   # Quadratic cost for states x0, x1, ..., x_N-1\n",
    "QxN = sparse.diags([0.5, 0.1])  # Quadratic cost for xN\n",
    "Qu = 2.0 * sparse.eye(1)        # Quadratic cost for u0, u1, ...., u_N-1\n",
    "QDu = 10.0 * sparse.eye(1)       # Quadratic cost for Du0, Du1, ...., Du_N-1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Initial state\n",
    "x0 = np.array([0.1, 0.2]) # initial state\n",
    "\n",
    "# Prediction horizon\n",
    "Np = 20\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Initialize and setup MPC controller\n",
    "\n",
    "K = MPCController(Ad,Bd,Np=Np, x0=x0,xref=xref,uminus1=uminus1,\n",
    "                  Qx=Qx, QxN=QxN, Qu=Qu,QDu=QDu,\n",
    "                  xmin=xmin,xmax=xmax,umin=umin,umax=umax,Dumin=Dumin,Dumax=Dumax)\n",
    "K.setup() # this initializes the QP problem for the first step"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Simulate in closed loop. Use MPC model as real system\n",
    "\n",
    "[nx, nu] = Bd.shape # number of states and number or inputs\n",
    "len_sim = 20 # simulation length (s)\n",
    "nsim = int(len_sim/Ts) # simulation length(timesteps)\n",
    "xsim = np.zeros((nsim,nx))\n",
    "usim = np.zeros((nsim,nu))\n",
    "tsim = np.arange(0,nsim)*Ts\n",
    "\n",
    "time_start = time.time()\n",
    "\n",
    "xstep = x0\n",
    "uMPC = uminus1\n",
    "for i in range(nsim):\n",
    "    xsim[i,:] = xstep\n",
    "\n",
    "    # MPC update and step. Could be in just one function call\n",
    "    K.update(xstep, uMPC) # update with measurement\n",
    "    uMPC = K.output() # MPC step (u_k value)\n",
    "    usim[i,:] = uMPC\n",
    "\n",
    "    xstep = Ad.dot(xstep) + Bd.dot(uMPC)  # Real system step (x_k+1 value)\n",
    "\n",
    "time_sim = time.time() - time_start\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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8sorufPOO7noootYvnw51157rddhiYhIkAT7MuIIYIpz7nozKw2UD/L5RYJq6tSpDBgwgD179jBixAjuvvtuIiLUoSwiEk6C9lffzGKAi4H3AJxzh51zu4N1fpFgyszM5IknnqBr167UqFGDhIQE7r33XhVaIiJhyJxzwTmRWUvgbWAVcC6wELjPObcvxzaDgcEAsbGxbSZMmFDkcaWlpVGxYsUiP09xpfwDn//OnTt59tlnWbx4MV27duXee++lXLlyAT1HoOj9V/7KX/mHq0DnHx8fv9A51zbPRudcUBagLZABtPd/PwJ4Jr/t27Rp44Jh5syZQTlPcaX8Zwb0eNOnT3exsbGuXLlybsyYMQE9dlHQ+z/T6xA8pfxneh2Cp5T/zIAeD0hw+dQ0wbymkQgkOud+9n8/CdA02RISnHO88MILdOnShcqVK/PLL79wyy23eB2WiIgUA0Ertpxz24A/zayJf1VnfJcURUq0ffv20a9fPx599FGuv/56EhISaNGihddhiYhIMRHsuxHvAcb570T8HdB//aVE27hxI1dffTXLli1j+PDhPPzww5iZ12GJiEgxEtRiyzm3BN/YLZESb8aMGfTu3ZuMjAy++eYbunXr5nVIIiJSDOk+dJGTMGrUKC677DJq1qzJggULVGiJiEi+VGyJFEJmZib33Xcfd999N927d+fnn3/mjDPO8DosEREpxlRsiRRQWloaV199Na+//jp/+9vf+OKLL4iOjvY6LBERKeaCPUBepERKTEzkyiuvZNmyZbzxxhsMGTLE65BERKSEULElcgKLFy+mR48epKam8s0339C1a1evQxIRkRJElxFFjuOHH37g4osvJjIykjlz5qjQEhGRQlOxJZKP8ePH0717d+Li4pg3bx5nn3221yGJiEgJpGJLJA+vvvoqf/3rX+nQoQOzZ8+mbt26XockIiIllIotkRyysrJ4+OGHuf/++7n22mv5/vvvqVy5stdhiYhICaYB8iJ+GRkZDBo0iA8//JAhQ4bwr3/9i8jISK/DEhGREk49WyLAoUOH6N27Nx9++CHDhg1j1KhRKrRERCQg1LMlYW/fvn1cc801TJs2jddee4377rvP65BERCSEqNiSsJaWlsbll1/OvHnzGDNmDLfccovXIYmISIhRsSVhKzk5mfvvv5+NGzcyYcIEevXq5XVIIiISglRs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Pg/VsxUi0tPTefzxx+ncuTPR0dHMnz+f++67T4WWiIiErT/++IN58+YB8PHHH3PhhRd6EoeKrRCwcuVKLrzwQp577jluueUWFi5cSKtWrbwOS0RExFNNmjRh1KhRNGvWjF27djFkyBBP4tBlxBIsPT2d4cOH88wzzxATE8Mnn3xC7969vQ5LRESkWChVqhRjx471OgwVWyXVokWLGDhwIEuXLqVv3768/vrr1KhRw+uwREREJBddRixh0tLSePTRR2nXrh1JSUn85z//Yfz48Sq0REREcoiLi2PFihVehwGoZ6vEcM4xbtw4HnnkEXcbMogAACAASURBVLZs2cItt9zCyy+/TJUqVbwOTURERI5DPVslQEJCAh07dmTAgAHUrVuXefPmMWbMGBVaIiIiJYCKrWJs48aN3HLLLbRr147ff/+dMWPGMH/+fM4//3yvQxMREZEC0mXEYmjTpk0899xz/Pvf/yYyMpIHHniAJ554gkqVKnkdmoiIiBSSeraKkT///JMhQ4Zwxhln8MEHH3D77bfz22+/8eKLL6rQEhERCaLk5GTat29Pq1atmD179ikdSz1bHnPO8fPPP/P666/z6aefYmYMGjSIf/zjH9SvX9/r8EREREJWZmYmkZGRebZNnz6ds88+m3ffffeUz6OeLY8cOnSIDz/8kHbt2tGhQwe++eYb7rrrLtatW8ebb76pQktEROQUbNy4kaZNm3LDDTfQrFkzrr/+evbv309cXByPPPIIF110EZ9++im//fYbXbt2pU2bNlx00UWsWbOGJUuW8PDDDzN58mRatmzJgQMHTikW9WwFkXOOefPmMX78eD755BOSk5Np2rQpo0aNYsCAAURHR3sdooiISOB16nTsut694c47Yf9+6N792Pabb/YtO3bA9dcf3TZrVoFOu3btWt577z06duzIwIEDeeONNwCoVq0as2fPJjo6ms6dOzN69GjOOOMMfv75Z+68805mzJjB008/TUJCAiNHjixMpnlSsVXEnHMsW7aM8ePHM2HCBDZt2kSZMmXo0aMHt99+O3/5y1/0sGgREZEiUL9+fTp27AhA//79ef311wHo06cP4JsofO7cufTq1St7n0OHDgU8DhVbRWDPnj1Mnz6dKVOmMGXKFP78808iIyO57LLLeOaZZ+jZs6cGvIuISPg4Xk9U+fLHb69evcA9Wbnl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\n",
      "text/plain": [
       "<Figure size 720x720 with 3 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot results\n",
    "\n",
    "fig,axes = plt.subplots(3,1, figsize=(10,10))\n",
    "axes[0].plot(tsim, xsim[:,0], \"k\", label='p')\n",
    "axes[0].plot(tsim, xref[0]*np.ones(np.shape(tsim)), \"r--\", label=\"pref\")\n",
    "axes[0].set_title(\"Position (m)\")\n",
    "\n",
    "axes[1].plot(tsim, xsim[:,1], label=\"v\")\n",
    "axes[1].plot(tsim, xref[1]*np.ones(np.shape(tsim)), \"r--\", label=\"vref\")\n",
    "axes[1].set_title(\"Velocity (m/s)\")\n",
    "\n",
    "axes[2].plot(tsim, usim[:,0], label=\"u\")\n",
    "axes[2].plot(tsim, uref*np.ones(np.shape(tsim)), \"r--\", label=\"uref\")\n",
    "axes[2].set_title(\"Force (N)\")\n",
    "\n",
    "for ax in axes:\n",
    "    ax.grid(True)\n",
    "    ax.legend()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  },
  "pycharm": {
   "stem_cell": {
    "cell_type": "raw",
    "source": [],
    "metadata": {
     "collapsed": false
    }
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
